//
//  MainTabBarController.swift
//  WeiBoItem
//
//  Created by jss on 16/4/16.
//  Copyright © 2016年 jss. All rights reserved.
//

import UIKit

class MainTabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let clickClosure = {[weak self] in
            
            print("加号按钮点击了")
            //实例化composeView
            let composeView:JSSComposeView = JSSComposeView()
            
            composeView.showVC(self)
            
            //把自定义的composeView添加到tabbarcontroll的view身上
//            self.view.addSubview(composeView)
//            self?.view.addSubview(composeView)
        }
        
        let tabbar = JSSTabBar()
       
        
        tabbar.clickCenterBtnClosure = clickClosure

    
        //这样子关联写会报错, 系统不能这样访问(因为系统的tabbar是只读属性 不能用tabbar的set方法)
        // 只读属性，直接设置行不通
        // 如果系统的一些只读属性，私有属性，不能直接设置值的话。就可以使用 kvc 去设置
        // kvc的底层是运行时 runtime
        
 //这样子关联写会报错, 系统不能这样访问(因为系统的tabbar是只读属性 不能用tabbar的set方法)
//        self.tabBar = JSSTabBar()
//        setValue forKey
        //参数一:自定义的tabBar  参数二:系统tabbar (通过Kvc给tabbar赋值)
        
        setValue(tabbar, forKey: "tabBar")
        
        //设置tabbar统一外观  全局统一外观
//        let tabar = UITabBar.appearance()
//        tabBar.tintColor = UIColor.orangeColor()
//        
//        //这里是一个一个加控制器  后面几个控制器也要这么加  所以把方法抽取出来了
//        let vc = HomeTableViewController()
//        
//        vc.title = "首页"
//        
//        vc.tabBarItem.image = UIImage(named:"tabbar_home")
//        
//        vc.tabBarItem.selectedImage = UIImage(named:"tabbar_home_selected")
//        
//        addChildViewController(vc)
        
        //调用下面方法 添加tabbarbutton对应的控制器
        addChildViewController(HomeTableViewController(), title: "首页", imageName: "tabbar_home")
        
        
        addChildViewController(MessageController(), title: "消息", imageName: "tabbar_message_center")
        
        addChildViewController(DiscoverTableViewController(), title: "发现", imageName: "tabbar_discover")

        
        addChildViewController(ProfileTableController(), title: "我", imageName: "tabbar_profile")
        
        
    }
    
    //抽取加载控制器的方法
    func addChildViewController(VC: UIViewController,title: String,imageName: String) {
        
        let vc = VC
        //这里设置了tabar图片下的文字 但是设置了导航栏 如果不设置 默认的导航栏的文字和tabbar的文字是一样的下面的代码是用来设置 导航栏和tabbar的title不一样的
        vc.title = title
        //vc.navigationItem.title = "导航首页"
        
        //设置tabbar文字的大小(可以调整文字大小)
        vc.tabBarItem.setTitleTextAttributes([NSFontAttributeName:UIFont.systemFontOfSize(14)], forState: .Normal)
        
        //设置tabbar文字的选中颜色
    vc.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.orangeColor()], forState: UIControlState.Selected)
        
        //设置默认图片
        vc.tabBarItem.image = UIImage(named:imageName)
        
        //设置选中图片
        vc.tabBarItem.selectedImage = UIImage(named:"\(imageName)_selected")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
        
        //当前自定义的tabbar控制器添加子控制器
//         addChildViewController(vc)
        
        //设置文字的粗体 (斜体是italicSystemFontOfSize(<#T##fontSize: CGFloat##CGFloat#>))
//    vc.tabBarItem.setTitleTextAttributes([NSFontAttributeName:UIFont.boldSystemFontOfSize(15)], forState: .Normal)
        
        
        //当前自定义的tabbar控制器添加子控制器并且在每个子控制器上添加导航控制器
        addChildViewController(UINavigationController(rootViewController: vc))
        
    }
    

  

}
